package com.ldcc.report_system.api;

import com.ldcc.report_system.api.param.LoginParam;
import com.ldcc.report_system.api.results.LoginResults;
import com.ldcc.report_system.api.results.PerPersonnel;
import com.ldcc.report_system.api.results.User;
import com.ldcc.report_system.util.http.ServerResponse;

import retrofit2.http.Body;
import retrofit2.http.DELETE;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.Path;
import rx.Observable;

/**
 * @author wwj[yeshengkele@outlook.com]
 * @description 与服务端访问
 */
public interface UserApi {

    /**
     * 登录至系统获取token
     *
     * @return 消息
     */
    @POST("/auth/login")
    Observable<ServerResponse<LoginResults>> login(@Body LoginParam loginParam);

    /**
     * 退出登录
     */
    @DELETE("/auth/logout")
    Observable<ServerResponse<Object>> logout();


    /**
     * 获取当前用户登录数据
     *
     * @return 前用户登录数据
     */
    @GET("/sys/user/userInfo")
    Observable<ServerResponse<User>> userInfo();


    /**
     * @return 是否存在
     * @description 检查token是否存在
     */
    @GET("/auth/compareToTaken")
    Observable<ServerResponse<Object>> compareToTaken();


    /**
     * 根据id获取人事管理数据
     *
     * @param id 人事管理id
     * @return 用户的人事管理信息
     */
    @GET("/internal/perpersonnel/{id}")
    Observable<ServerResponse<PerPersonnel>> getPerPersonnelById(@Path("id") String id);

}
